package com.aizuda.redislock;

import com.aizuda.redislock.annotation.DistributedLimit;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * @author zhongjiahua
 * @date 2021-11-28
 * @Description: 分布式锁测试
 */
@Slf4j
@Component
public class LockTestComponent {

    @DistributedLimit(
            // 唯一标示，支持SpEL表达式（可无），'#name!=null?#name:'default'' 为获取当前访问参数 name 内容，如果为空，则默认为 'default'
            key = "#name!=null?#name:'default'",
            // 指定时间获取锁，如果在指定时间获取不到，则抛出对应异常，捕获此异常即可
            expire = "5s",
            // 提示消息
            message = "此锁暂支持重入"
    )
    public void testLock(String name) {
        log.info("程序运行到这里，说明此分布式锁是可重入的");
    }
}
